package com.sctvcloud.zhaohua_sd.http;

import android.support.v4.util.ArrayMap;

import com.sctvcloud.zhaohua_sd.beans.ADynamicsItem;
import com.sctvcloud.zhaohua_sd.beans.AFileItem;
import com.sctvcloud.zhaohua_sd.beans.AHomePageItem;
import com.sctvcloud.zhaohua_sd.beans.ARecomdList;
import com.sctvcloud.zhaohua_sd.beans.AdPicItem;
import com.sctvcloud.zhaohua_sd.beans.AddrInfo;
import com.sctvcloud.zhaohua_sd.beans.AddrInfoItem;
import com.sctvcloud.zhaohua_sd.beans.AdvertBean;
import com.sctvcloud.zhaohua_sd.beans.AdvertDataVo;
import com.sctvcloud.zhaohua_sd.beans.AnchorList;
import com.sctvcloud.zhaohua_sd.beans.AttitudesBean;
import com.sctvcloud.zhaohua_sd.beans.BranchBean;
import com.sctvcloud.zhaohua_sd.beans.ChatItem;
import com.sctvcloud.zhaohua_sd.beans.ChooseCityBean;
import com.sctvcloud.zhaohua_sd.beans.ChooseCityVo;
import com.sctvcloud.zhaohua_sd.beans.ContentImage;
import com.sctvcloud.zhaohua_sd.beans.ConvertRecordBean;
import com.sctvcloud.zhaohua_sd.beans.FCityItem;
import com.sctvcloud.zhaohua_sd.beans.FCityState;
import com.sctvcloud.zhaohua_sd.beans.FComment;
import com.sctvcloud.zhaohua_sd.beans.FLive;
import com.sctvcloud.zhaohua_sd.beans.FLiveDy;
import com.sctvcloud.zhaohua_sd.beans.FNews;
import com.sctvcloud.zhaohua_sd.beans.FOrganDetail;
import com.sctvcloud.zhaohua_sd.beans.FProgram;
import com.sctvcloud.zhaohua_sd.beans.FRebellion;
import com.sctvcloud.zhaohua_sd.beans.FScribeState;
import com.sctvcloud.zhaohua_sd.beans.FSubscribe;
import com.sctvcloud.zhaohua_sd.beans.FUsers;
import com.sctvcloud.zhaohua_sd.beans.FVersionInfo;
import com.sctvcloud.zhaohua_sd.beans.FocusColumn;
import com.sctvcloud.zhaohua_sd.beans.GoodsBean;
import com.sctvcloud.zhaohua_sd.beans.GoodsBeanInfo;
import com.sctvcloud.zhaohua_sd.beans.GovBean;
import com.sctvcloud.zhaohua_sd.beans.GovDetailBean;
import com.sctvcloud.zhaohua_sd.beans.GovItemBean;
import com.sctvcloud.zhaohua_sd.beans.HighRiseBean;
import com.sctvcloud.zhaohua_sd.beans.HighRiseVo;
import com.sctvcloud.zhaohua_sd.beans.HomePopular;
import com.sctvcloud.zhaohua_sd.beans.IntegralAddBean;
import com.sctvcloud.zhaohua_sd.beans.InvitationRuleVo;
import com.sctvcloud.zhaohua_sd.beans.LicenseKeyItem;
import com.sctvcloud.zhaohua_sd.beans.LiveAdvance;
import com.sctvcloud.zhaohua_sd.beans.LiveItem;
import com.sctvcloud.zhaohua_sd.beans.MessageListVo;
import com.sctvcloud.zhaohua_sd.beans.MessageStateBean;
import com.sctvcloud.zhaohua_sd.beans.NewsClickBean;
import com.sctvcloud.zhaohua_sd.beans.NewsDate;
import com.sctvcloud.zhaohua_sd.beans.NewsItem;
import com.sctvcloud.zhaohua_sd.beans.NewsListClickVo;
import com.sctvcloud.zhaohua_sd.beans.PrizeImage;
import com.sctvcloud.zhaohua_sd.beans.RebllionCommitResult;
import com.sctvcloud.zhaohua_sd.beans.ReplyDetail;
import com.sctvcloud.zhaohua_sd.beans.ResidualIntegral;
import com.sctvcloud.zhaohua_sd.beans.SearchKeyWords;
import com.sctvcloud.zhaohua_sd.beans.SearchResult;
import com.sctvcloud.zhaohua_sd.beans.ServiceBean;
import com.sctvcloud.zhaohua_sd.beans.ServiceConfigBean;
import com.sctvcloud.zhaohua_sd.beans.ServiceVo;
import com.sctvcloud.zhaohua_sd.beans.SignInfo;
import com.sctvcloud.zhaohua_sd.beans.ServiceCityListVo;
import com.sctvcloud.zhaohua_sd.beans.SingleResult;
import com.sctvcloud.zhaohua_sd.beans.SpecialInfo;
import com.sctvcloud.zhaohua_sd.beans.TodayNews;
import com.sctvcloud.zhaohua_sd.beans.TopicContent;
import com.sctvcloud.zhaohua_sd.beans.TopicVo;
import com.sctvcloud.zhaohua_sd.beans.TvLivingList;
import com.sctvcloud.zhaohua_sd.beans.UserInfoBean;
import com.sctvcloud.zhaohua_sd.beans.VoteInfo;
import com.sctvcloud.zhaohua_sd.beans.VoteOption;

import java.util.List;
import java.util.Map;

import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.FieldMap;
import retrofit2.http.Path;
import retrofit2.http.Url;

/**
 * Created by Administrator on 2017/7/6.
 */

public interface INetAdapter {
    /**
     * get获取object数据
     *
     * @param url
     * @param isHole 是否是完整的url(即不使用baseurl,参数url是一个完整的url)
     * @return
     */
    <T> Call<NetResponseObject<T>> getObj(String url, boolean isHole, INetCallback<T> callback);

    /**
     * get获取object数据
     *
     * @param url
     * @param isHole 是否是完整的url(即不使用baseurl,参数url是一个完整的url)
     * @return
     */
    <T> Call<NetResponseObjectArray<T>> getArray(String url, boolean isHole, INetCallback<List<T>> callback);

    /**
     * post获取object数据
     *
     * @param method 方法名
     * @param param  请求的参数
     * @return
     */
    <T> Call<NetResponseObject<T>> getObjPost(String method, Map<String, Object> param, INetCallback<T> callback);

    /**
     * post获取列表数据
     *
     * @param method 方法名
     * @param param  请求的参数
     * @return
     */
    <T> Call<?> getArrayPost(String method, Map<String, Object> param, INetCallback<List<T>> callback);

    /**
     * post获取列表分页数据
     *
     * @param method 方法名
     * @param param  请求的参数
     * @return
     */
    <T> Call<?> getArrayPostPage(String method, Map<String, Object> param, INetCallback<NetResponseObjectArray<T>> callback);

    /*** 以下为新的针对性的接口***/

    Call<NetResponseObjectArray<FocusColumn>> getChannelArray(String owner, String method, INetCallback<List<FocusColumn>> callback);//getNewsArray

    Call<NetResponseObjectArray<NewsItem>> getNewsArray(String owner, String method, INetCallback<List<NewsItem>> callback);

    Call<NetResponseObjectArray<NewsDate>> getNewsDateArray(String owner, String method, INetCallback<List<NewsDate>> callback);

    Call<NetResponseObjectArray<NewsItem>> getNewsPage(String owner, String method, int calledIndex, INetCallback<List<NewsItem>> callback);

    Call<NetResponseObjectArray<LiveItem>> getLiveArray(String owner, String method, INetCallback<List<LiveItem>> callback);

    Call<NetResponseObjectArray<FProgram>> getProgramArray(String owner, String method, INetCallback<List<FProgram>> callback);

    Call<NetResponseObjectArray<ADynamicsItem>> getDynamicsPage(String owner, String method, int calledIndex, INetCallback<List<ADynamicsItem>> callback);

    Call<NetResponseObjectArray<FRebellion>> getRebellionPage(String owner, String method, int calledIndex, INetCallback<List<FRebellion>> callback);

    Call<NetResponseObject<AnchorList>> getAnchorList(String owner, String method, INetCallback<AnchorList> callback);

    Call<NetResponseObject<AHomePageItem>> getAHomePageList(String owner, String method, int calledIndex, INetCallback<AHomePageItem> callback);

    Call<NetResponseObject<ARecomdList>> getRecommList(String owner, String method, int calledIndex, INetCallback<ARecomdList> callback);

    Call<NetResponseObject<TvLivingList>> getTvLivingList(String owner, String method, INetCallback<TvLivingList> callback);

    Call<NetResponseObject<FLive>> getLiveInfo(String owner, String method, INetCallback<FLive> callback);

    Call<NetResponseObjectArray<FProgram>> getProgramList(String owner, String method, int calledIndex, INetCallback<List<FProgram>> callback);

    Call<NetResponseObject<FCityItem>> getStateList(String owner, String method, INetCallback<FCityItem> callback);

    Call<NetResponseObject<FOrganDetail>> getOrganList(String owner, String method, int calledIndex, INetCallback<FOrganDetail> callback);

    Call<NetResponseObjectArray<FSubscribe>> getSubscribeListPage(String owner, String method, int calledIndex, INetCallback<List<FSubscribe>> callback);

    Call<NetResponseObject<AdPicItem>> getAdList(String owner, String method, INetCallback<AdPicItem> callback);

    Call<NetResponseObject<FVersionInfo>> getVersion(String owner, String method, INetCallback<FVersionInfo> callback);

    Call<NetResponseObject<AdvertDataVo>> getAdInfo(String owner, String method, INetCallback<AdvertDataVo> callback);

    Call<NetResponseObject<HighRiseBean>> getHighRiseList(String owner, String url, INetCallback<HighRiseBean> callback);

    Call<NetResponseObject<GovBean>> getGovList(String owner, Map<String, Object> param, INetCallback<GovBean> callback);

    Call<NetResponseObject<TodayNews>> getTodayNews(String owner, String method, INetCallback<TodayNews> callback);

    Call<NetResponseObject<SpecialInfo>> getSpecial(String owner, String method, INetCallback<SpecialInfo> callback);


    /**
     * 适用接口:
     * 获取手机验证码、第三方绑定和解绑、修改昵称、修改用户头像、用户发送邀请码、发布报料、
     * 用户发表评论的接口、发布主播圈动态
     *
     * @param method
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> postGetSingle(String owner, String method, Map<String, Object> param, INetCallback<SingleResult> callback);

    Call<NetResponseObject<FUsers>> postLogin(String owner, Map<String, Object> param, INetCallback<FUsers> callback);

    Call<NetResponseObject<RebllionCommitResult>> postRebellion(String owner, ArrayMap<String, Object> param, INetCallback<RebllionCommitResult> callback);

    Call<NetResponseObject<SingleResult>> postAnchor(String owner, ArrayMap<String, Object> param, INetCallback<SingleResult> callback);

    Call<NetResponseObject<SingleResult>> modifyAvatar(String owner, ArrayMap<String, Object> param, String file, INetCallback<SingleResult> callback);

    Call<NetResponseObject<RebllionCommitResult>> postWenzheng(String owner, ArrayMap<String, Object> param, INetCallback<RebllionCommitResult> callback);




    /**
     * 获取用户订阅机构
     *
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObjectArray<FCityState>> getUserOrganList(String owner, ArrayMap<String, Object> param, INetCallback<List<FCityState>> callback);

    /**
     * 获取订阅状态
     *
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<FScribeState>> getSubscribeState(String owner, Map<String, Object> param, INetCallback<FScribeState> callback);

    /**
     * 关键词搜索列表
     *
     * @param param
     * @param callback
     * @return
     */

    Call<NetResponseObject<SearchResult>> getSearchResult(String owner, Map<String, Object> param, INetCallback<SearchResult> callback);


    /**
     * 关键词搜索列表
     *
     * @param param
     * @param callback
     * @return
     */

    Call<NetResponseObject<SearchResult>> keywordOptionSearchFulltext(String owner, Map<String, Object> param, INetCallback<SearchResult> callback);

    /**
     * 获取直播配置信息
     *
     * @param param
     * @param callback
     * @return
     */

    Call<NetResponseObject<LiveAdvance>> getLiveConfig(String owner, Map<String, Object> param, INetCallback<LiveAdvance> callback);


    /**
     * 获取直播icensekey
     *
     * @param param
     * @param callback
     * @return
     */

    Call<NetResponseObject<LicenseKeyItem>> getLicensekey(String owner, Map<String, Object> param, INetCallback<LicenseKeyItem> callback);


    Call<String> getStringContent(String owner, String url, INetCallback<String> callback);

    /**
     * 获取投票信息
     */
    Call<NetResponseObject<VoteInfo>> getVoteInfo(String owner, Map<String, Object> param, INetCallback<VoteInfo> callback);

    /**
     * 获取投票信息
     */
    Call<NetResponseObject<VoteInfo>> getVoteInfo(String owner, String url, Map<String, Object> param, INetCallback<VoteInfo> callback);

    /**
     * 获取新闻详情正文
     */
    Call<NetResponseObject<FNews>> getNewsInfo(String owner, String url, INetCallback<FNews> callback);

    /**
     * 获取首页热门视频
     */
    Call<NetResponseObject<HomePopular>> getHomePopular(String owner, String url, INetCallback<HomePopular> callback);

    /**
     * 获取评论列表,有分页
     *
     * @param sourceId    新闻id/专题id
     * @param requestType 请求评论数据类型    1:新闻评论 ;  2:专题评论
     * @param capacity    本次请求数据的条数
     * @param index       从第index条开始获取(index从0开始)
     * @param callback    回调
     * @return
     */
    Call<NetResponseObjectArray<FComment>> getCommentList(String owner, String sourceId, int requestType
            , int capacity, int index, INetCallback<List<FComment>> callback);

    Call<NetResponseObjectArray<FComment>> getCommentList(String owner, String url, String sourceId, int requestType, int capacity, int index,
                                                          INetCallback<List<FComment>> callback);

    Call<NetResponseObjectArray<LiveItem>> getLiveListPage(String owner, String url, int calledIndex
            , INetCallback<List<LiveItem>> callback);

    Call<NetResponseObjectArray<VoteOption>> accountVOte(String owner, Map<String, Object> param
            , INetCallback<List<VoteOption>> callback);

    Call<NetResponseObjectArray<ChatItem>> getLiveChatList(String owner, String sourceId
            , INetCallback<List<ChatItem>> callback);

    Call<NetResponseObjectArray<ChatItem>> getLiveChatList(String owner, String url, String sourceId
            , INetCallback<List<ChatItem>> callback);

    /**
     * 上传图片
     *
     * @param files    图片地址集合
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> uploadImages1(String owner, List<String> files, INetCallback<SingleResult> callback);

    /**
     * 上传图片
     *
     * @param files    图片地址集合
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> uploadImages(String owner, List<ContentImage> files, INetCallback<SingleResult> callback);


    /**
     * 上传视频
     *
     * @param videoFile 视频地址
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> uploadVideo(String owner, String videoFile, INetCallback<SingleResult> callback);

    /**
     * 获取热门词汇
     *
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<SearchKeyWords>> getHotKeyWords(String owner, Map<String, Object> param, INetCallback<SearchKeyWords> callback);

    Call<NetResponseObjectArray<NewsItem>> getRelateNews(String owner, String keyword, String newsId, INetCallback<List<NewsItem>> callback);

    Call<NetResponseObjectArray<NewsItem>> getRelateNews(String owner, String url, String keyword, String newsId, INetCallback<List<NewsItem>> callback);

    Call<NetResponseObjectArray<FLiveDy>> getLiveDynamicList(String owner, String keyword, INetCallback<List<FLiveDy>> callback);

    Call<NetResponseObjectArray<FLiveDy>> getLiveDynamicList(String owner, String url, String keyword, INetCallback<List<FLiveDy>> callback);

    /**
     * 获取主播动态
     *
     * @param owner
     * @param callback
     * @return
     */
    Call<NetResponseObjectArray<ADynamicsItem>> getTimelineList(String owner, Map<String, Object> param, INetCallback<List<ADynamicsItem>> callback);

    /**
     * 获取主播动态
     *
     * @param owner
     * @param callback
     * @return
     */
    Call<NetResponseObjectArray<NewsItem>> getAnchorRelateNewsList(String owner, Map<String, Object> param, INetCallback<List<NewsItem>> callback);


    /**
     * 获取主播动态
     *
     * @param owner
     * @param callback
     * @return
     */
    Call<NetResponseObjectArray<AFileItem>> getRadioHostDoc(String owner, Map<String, Object> param, INetCallback<List<AFileItem>> callback);

    Call<NetResponseObjectArray<ADynamicsItem>> getMyAnchorDynamicList(String owner, Map<String, Object> param, INetCallback<List<ADynamicsItem>> callback);


    /**
     * 主播圈点赞
     *
     * @param param
     * @param callback
     * @return
     */

    Call<NetResponseObject<SingleResult>> doUpForDynamics(String owner, Map<String, Object> param, INetCallback<SingleResult> callback);


    /** ----------------------------------新增------------------------------------ */
    /**
     * 查询消息状态，是否有未读消息
     *
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<MessageStateBean>> postGetMessageState(String owner, Map<String, Object> param, INetCallback<MessageStateBean> callback);


    /**
     * 获取消息列表
     *
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<MessageListVo>> postGetMessageList(String owner, Map<String, Object> param, INetCallback<MessageListVo> callback);

    /**
     * 清空消息列表
     *
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> postCleanMessage(String owner, Map<String, Object> param, INetCallback<SingleResult> callback);

    /**
     * 设置消息已读
     *
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> postSetReadMessage(String owner, Map<String, Object> param, INetCallback<SingleResult> callback);


    /**
     * 增加积分功能
     *
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<IntegralAddBean>> postAddIntegral(String owner, Map<String, Object> param, INetCallback<IntegralAddBean> callback);

    /**
     * 获取用户相关数据（积分等）
     *
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<UserInfoBean>> postGetUserData(String owner, Map<String, Object> param, INetCallback<UserInfoBean> callback);

    /**
     * 查询兑换记录
     *
     * @param owner
     * @param userId
     * @param pageIndex
     * @param token
     * @param callback
     * @return
     */
    Call<NetResponseObjectArray<ConvertRecordBean>> getOrderList(String owner, String userId, int pageIndex, String token
            , INetCallback<List<ConvertRecordBean>> callback);

    /**
     * 获取积分规则说明
     *
     * @param owner
     * @param method
     * @param callback
     * @return
     */
    Call<NetResponseObject<InvitationRuleVo>> getInvitationRuleList(String owner, String method, INetCallback<InvitationRuleVo> callback);


    /**
     * 获取新闻或直播详情的点击量
     *
     * @param owner
     * @param callback
     * @return
     */
    Call<NetResponseObject<NewsClickBean>> getNewOrLivingClick(String owner, Map<String, Object> param, INetCallback<NewsClickBean> callback);

    /**
     * 新闻、直播详情增加点击量
     *
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> addNewOrLivingClick(String owner, Map<String, Object> param, INetCallback<SingleResult> callback);

    /**
     * 获取服务模块配置的城市列表
     *
     * @param owner
     * @param method
     * @param callback
     * @return
     */
    Call<NetResponseObject<ServiceCityListVo>> getServiceCityList(String owner, String method, INetCallback<ServiceCityListVo> callback);

    /**
     * 获取本月签到信息
     *
     * @param owner
     * @param userId
     * @param token
     * @param callback
     * @return
     */
    Call<NetResponseObject<SignInfo>> getSignInfo(String owner, String userId, String token
            , INetCallback<SignInfo> callback);

    /**
     * 获取商品详情
     *
     * @param owner
     * @param method
     * @param callback
     * @return
     */
    Call<NetResponseObject<GoodsBeanInfo>> getMallStringData(String owner, String method, INetCallback<GoodsBeanInfo> callback);


    /**
     * 获取收货地址列表
     *
     * @param owner
     * @param userId
     * @param token
     * @param callback
     * @return
     */
    Call<NetResponseObjectArray<AddrInfo>> getAddrList(String owner, String userId, String token
            , INetCallback<List<AddrInfo>> callback);

    /**
     * 积分商城，验证用户邀请码
     *
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> checkInvitationCode(String owner, Map<String, Object> param, INetCallback<SingleResult> callback);

    /**
     * 新增收货地址
     *
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<AddrInfoItem>> addAddrInfo(String owner, Map<String, Object> param, INetCallback<AddrInfoItem> callback);

    /**
     * 设置默认收货地址
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> setDefaultAddr(String owner, Map<String, Object> param, INetCallback<SingleResult> callback);


    /**
     * 兑换商品
     *
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<ResidualIntegral>> addGoodsOrder(String owner, Map<String, Object> param, INetCallback<ResidualIntegral> callback);


    /**
     * 获取服务的配置地址路径
     *
     * @param owner
     * @param method
     * @param callback
     * @return
     */
    Call<NetResponseObject<ServiceConfigBean>> getServiceConfigData(String owner, String method, INetCallback<ServiceConfigBean> callback);

    /**
     * 获取市州城市数据
     *
     * @param owner
     * @param url
     * @param callback
     * @return
     */
    Call<NetResponseObject<ChooseCityVo>> getCityList(String owner, String url, INetCallback<ChooseCityVo> callback);

    /**
     * 添加操作日志
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> addUserOperate(String owner, Map<String, Object> param, INetCallback<SingleResult> callback);

    /**
     * 添加直播在线日志
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> addUserOnline(String owner, Map<String, Object> param, INetCallback<SingleResult> callback);

    /**
     * 获取更多热门视频（短视频）
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObjectArray<NewsItem>> getShortVideos(String owner, Map<String, Object> param, INetCallback<List<NewsItem>> callback);

    /**
     * 获取爆料数据
     *
     * @param owner
     * @param callback
     * @return
     */
    Call<NetResponseObjectArray<FRebellion>> getTopiciscloseList(String owner, Map<String, Object> param, INetCallback<List<FRebellion>> callback);

    /**
     * 获取问政
     *
     * @param owner
     * @param callback
     * @return
     */
    Call<NetResponseObjectArray<FRebellion>> getWenzheng(String owner, Map<String, Object> param, INetCallback<List<FRebellion>> callback);


    /**
     * 获取报料详情
     *
     * @param owner
     * @param callback
     * @return
     */
    Call<NetResponseObject<ReplyDetail>> getReplyDetail(String owner, Map<String, Object> param, INetCallback<ReplyDetail> callback);


    /**
     *
     * @param owner
     * @param callback
     * @return
     */
    Call<NetResponseObject<PrizeImage>> getPrizeImg(String owner, Map<String, Object> param, INetCallback<PrizeImage> callback);



    /**
     * 获取部门列表
     *
     * @param owner
     * @param callback
     * @return
     */
    Call<NetResponseObject<BranchBean>> getBranch(String owner, Map<String, Object> param, INetCallback<BranchBean> callback);


    /**
     * 获取乡镇政务新闻列表
     *
     * @param owner
     * @param callback
     * @return
     */
    Call<NetResponseObject<GovDetailBean>> getOrgInfos(String owner, Map<String, Object> param, INetCallback<GovDetailBean> callback);


    /**
     * 获取话题类型
     *
     * @param owner
     * @param callback
     * @return
     */
    Call<NetResponseObject<TopicVo>> getTopicList(String owner, Map<String, Object> param, INetCallback<TopicVo> callback);


    /**
     * 获取点赞数
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<AttitudesBean>> getAttitudes(String owner, Map<String, Object> param, INetCallback<AttitudesBean> callback);

    /**
     * 获取服务数据
     * @param owner
     * @param param
     * @param callback
     * @return
     */
    Call<NetResponseObject<ServiceVo>> getServiceData(String owner, Map<String, Object> param, INetCallback<ServiceVo> callback);

    /**
     * 新闻列表获取点击量
     * @param owner
     * @param newsIds
     * @param callback
     * @return
     */
    Call<NetResponseObject<NewsListClickVo>> getViewsList(String owner, RequestBody newsIds, INetCallback<NewsListClickVo> callback);

    /**
     * 上传APP首次启动次数
     * @param owner
     * @param deviceId
     * @param versionName
     * @param callback
     * @return
     */
    Call<NetResponseObject<SingleResult>> sendInstallData(String owner, String deviceId,String versionName, INetCallback<SingleResult> callback);
}
